/********************************************
* Copyrigt (C) rumi
* Module: Serv_Check.c
* V1.0.1
*********************************************/
#include "Serv_Check.h"

/********************************************/
uint16_t CRC16_Check_Code(volatile uint8_t * data, uint16_t length)
{
    volatile uint16_t i, crc_reg, CrcData;

    crc_reg = 0xFFFF;

    while(length--)
    {
        CrcData = *data++;
        crc_reg ^= CrcData;

        for(i = 0; i < 8; i++)
        {
            if(crc_reg & 0x01)
            {
                crc_reg = (crc_reg >> 1) ^ 0xA001;
            }
            else
            {
                crc_reg = (crc_reg >> 1);
            }
        }
    }
    return crc_reg;		
}


/********************************************
 * End of file
*********************************************/
